package com.woniuxy.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.entity.AllArticle;
import com.woniuxy.entity.DTO.ArticleUserDTO;

import java.util.List;

/**
 * @author nanqiao
 * @description 针对表【all_article(内容主表（帖子）)】的数据库操作Service
 * @createDate 2025-07-10 15:30:19
 */
public interface AllArticleService extends IService<AllArticle> {

    List<ArticleUserDTO> selectArticlesByTypeId(Integer typeId);

    boolean removeById(Long id);

    List<AllArticle> searchArticlesByTitle(String title);

    /**
     * 根据帖子ID获取帖子的作者ID
     *
     * @param articleId 帖子ID
     * @return 作者ID
     */
    Long getAuthorIdByArticleId(Long articleId);
    /**
     * 根据用户ID获取该用户的所有帖子
     * @param userId 用户ID
     * @return 帖子列表
     */
    List<AllArticle> getArticlesByUserId(Long userId);
    /**
     * 增加帖子的浏览量
     * @param articleId 帖子ID
     */
    void incrementViewCount(Long articleId);

    /**
     * 根据浏览量从高到低获取所有帖子
     * @return 帖子列表
     */
    List<AllArticle> getAllArticlesByViewCount();
    /**
     * 根据帖子ID查询帖子信息（包含点赞数）
     */
    AllArticle getArticleWithLikeCountById(Long id);

}
